# -*- coding: utf-8 -*-
#!/bin/env python

import socket
import urllib
import urllib2


#########################################################################
##-backup_csvスクリプトの使用方法について-
##
##以下で実行されます。
##>backup("ID","PASS", min, max )
## 各パラメータについて
## ID,PASS
##         100uhacoプロジェクトに使用しているもの
## min,max
##         "今日"から"四日前"のデータを保存したい場合は
##         min=0,max=-4のように指定。
##
##出力先はスクリプト実行ディレクトリとなり、以下の形式で保存されます。
##"ID"-backup.csv　(ex:pot-backup.csv)
##
#########################################################################



def backup(ID, passwd,min ,max):
        if max > min:
                print "Invalid"
        elif min > 0:
                print "Invalid"
        else:
                socket.setdefaulttimeout(31)
                opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
                urllib2.install_opener(opener)
                
                params = urllib.urlencode(dict(username= ID, password= passwd))

                try:
                        f = opener.open('http://100uhaco.appspot.com/account/login/?next=/haco/csv/', params)
                        data = f.read()
                        if not data.count("Login"):
                                f.close()
                                for delta in range(max, min + 1):
                                        load(ID, passwd, opener, delta)
                        else:
                                f.close()
                                print "Auth Error"
                        
                except Exception , e:
                        print e
        

def load(ID, passwd, opener, delta):
        print("processing day "+str(delta)+" data")
        URL = "http://100uhaco.appspot.com/haco/csv/?delta=" + str(delta)
        
        try:
                f = opener.open(URL)
                data = f.read()
                f.close()

                w_file(ID, data)
        except urllib2.HTTPError,e :
                print " Failed:" + str(e)
        
def w_file(ID, data):
        title = ID +"-backup.csv" 
        file = open(title, "a")
        print >> file ,data
        
